
package cn.ynrcb.personnelfile.sysadmin.entity;

import cn.ynrcb.personnelfile.common.validator.group.AddGroup;
import cn.ynrcb.personnelfile.common.validator.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Email;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 系统用户
 * @author wujianfan
 * @version created at 2019年11月18日 上午10:24:31
 */
@ApiModel("用户信息")
@Data
@TableName("sys_user")
public class SysUserEntity  implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 用户ID
	 */
	@ApiModelProperty(value = "用户ID" ,name = "userId", example = "3")
	@TableId
	private Long userId;

	/**
	 * 角色ID（1-超管，2-省级管理员，3-州市管理员,，4-县区管理员，10-企业用户）
	 */
	@ApiModelProperty(value = "角色ID" ,name = "roleId", example = "10")
	private Integer roleId;

	/**
	 * 机构id
	 */
	@ApiModelProperty(value = "机构id" ,name = "orgId", example = "2")
	private Long orgId;

	/**
	 * 用户名
	 */
	@ApiModelProperty(value = "用户名" ,name = "username", example = "ceshi1")
	private String username;

	/**
	 * 用户名
	 */
	@ApiModelProperty(value = "真实姓名" ,name = "userCnName", example = "李XX")
	private String userCnName;

	/**
	 * 密码
	 */
	@ApiModelProperty(hidden = true)
	private String password;

	/**
	 * 盐
	 */
	@ApiModelProperty(hidden = true)
	private String salt;

	/**
	 * 座机电话
	 */
	@ApiModelProperty(value = "座机电话" ,name = "telephone", example = "8881523")
	private String telephone;

	/**
	 * 手机号
	 */
	@ApiModelProperty(value = "手机号" ,name = "mobile", example = "13800000000")
	private String mobile;

	/**
	 * 邮箱
	 */
	@ApiModelProperty(value = "邮箱" ,name = "email", example = "xxx132@qq.com")
	@Email(message="邮箱格式不正确", groups = {AddGroup.class, UpdateGroup.class})
	private String email;

	/**
	 * 状态  0：禁用   1：正常
	 */
	@ApiModelProperty(value = "状态  0：禁用   1：正常" ,name = "status", example = "1")
	private Integer status;

	/**
	 * 是否锁定用户：1.是  0否
	 */
	@ApiModelProperty(value = "是否锁定用户：1.是  0否" ,name = "isLock", example = "0")
	private Integer isLock;

	/**
	 * 是否删除：1.是  2.否
	 */
	@ApiModelProperty(hidden = true)
	private Integer isDelete;


	/**
	 * 上次登录时间
	 */
	@ApiModelProperty(hidden = true)
	private Date lastLoginTime;

	/**
	 * 登录错误次数
	 */
	@ApiModelProperty(hidden = true)
	private Integer missNum;

	/**
	 * 备注
	 */
	@ApiModelProperty(hidden = true)
	private String remark;

	/**
	 * 创建人ID
	 */
	@ApiModelProperty(hidden = true)
	private Long createUserId;

	/**
	 * 创建时间
	 */
	@ApiModelProperty(hidden = true)
	private Date createTime;

	/**
	 * 修改人ID
	 */
	@ApiModelProperty(hidden = true)
	private Long updateUserId;

	/**
	 * 修改时间
	 */
	@ApiModelProperty(hidden = true)
	private Date updateTime;

	/**
	 * 角色ID列表
	 */
	@ApiModelProperty(value = "角色ID列表" ,name = "roleIdList", example = "10")
	@TableField(exist = false)
	private List<Integer> roleIdList;

	/**
	 * 审核时间
	 */
	private Date auditTime;
	/**
	 * 审核人id
	 */
	private Long auditUserId;
	/**
	 * 审核状态
	 */
	private Integer auditStatus;

}
